package top.infopub.mgr.cap.service;

import java.util.List;

import top.infopub.generic.GenericService;
import top.infopub.mgr.cap.domain.ContractInfoDomain;
import top.infopub.mgr.cap.vo.ContractInfoVo;
import top.infopub.model.cap.ContractAtt;
import top.infopub.model.cap.ContractBank;
import top.infopub.model.cap.ContractInfo;

import com.github.pagehelper.Page;

public interface ContractInfoService extends GenericService<ContractInfo, String> {
 
    /**
     * 根据条件查询融资合同记录
     * @param ContractInfoVo
     * @return 
     * @see
     */
    Page<ContractInfoDomain> selectByDomainWhere(Page<ContractInfoDomain> page, ContractInfoVo contractInfoVo);

    /**
     * 根据条件查询融资合同记录-我审批的
     * @param ContractInfoVo
     * @return 
     * @see
     */
    Page<ContractInfoDomain> selectMyCheckByDomainWhere(Page<ContractInfoDomain> page,
                        ContractInfoVo contractInfoVo);

    /**
     * 添加-融资合同
     */
    void saveContractInfo(ContractInfo contractInfo, List<ContractBank> contractBanks,
                      List<ContractAtt> contractAtts);

    /**
     * 根据融资合同id查询详情
     * @param id 主键id
     * @return 
     * @see
     */
    ContractInfoVo selectById(String id);
    
    /**
     * 根据融资合同名称判断是否存在
     */
    ContractInfo isExistsByContractName(String contractName);

    /**
     * 根据项目id查询融资合同项目名称
     */
    List<ContractInfo> queryByProCode(String proId);
    
    /**
     * 查询融资合同项目名称
     */
    List<ContractInfo> queryAll();
    
}